
book-08:     file format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:	f3 0f 1e fa          	endbr64 
    1004:	48 83 ec 08          	sub    $0x8,%rsp
    1008:	48 8b 05 d9 2f 00 00 	mov    0x2fd9(%rip),%rax        # 3fe8 <__gmon_start__>
    100f:	48 85 c0             	test   %rax,%rax
    1012:	74 02                	je     1016 <_init+0x16>
    1014:	ff d0                	callq  *%rax
    1016:	48 83 c4 08          	add    $0x8,%rsp
    101a:	c3                   	retq   

Disassembly of section .plt:

0000000000001020 <.plt>:
    1020:	ff 35 5a 2f 00 00    	pushq  0x2f5a(%rip)        # 3f80 <_GLOBAL_OFFSET_TABLE_+0x8>
    1026:	f2 ff 25 5b 2f 00 00 	bnd jmpq *0x2f5b(%rip)        # 3f88 <_GLOBAL_OFFSET_TABLE_+0x10>
    102d:	0f 1f 00             	nopl   (%rax)
    1030:	f3 0f 1e fa          	endbr64 
    1034:	68 00 00 00 00       	pushq  $0x0
    1039:	f2 e9 e1 ff ff ff    	bnd jmpq 1020 <.plt>
    103f:	90                   	nop
    1040:	f3 0f 1e fa          	endbr64 
    1044:	68 01 00 00 00       	pushq  $0x1
    1049:	f2 e9 d1 ff ff ff    	bnd jmpq 1020 <.plt>
    104f:	90                   	nop
    1050:	f3 0f 1e fa          	endbr64 
    1054:	68 02 00 00 00       	pushq  $0x2
    1059:	f2 e9 c1 ff ff ff    	bnd jmpq 1020 <.plt>
    105f:	90                   	nop
    1060:	f3 0f 1e fa          	endbr64 
    1064:	68 03 00 00 00       	pushq  $0x3
    1069:	f2 e9 b1 ff ff ff    	bnd jmpq 1020 <.plt>
    106f:	90                   	nop
    1070:	f3 0f 1e fa          	endbr64 
    1074:	68 04 00 00 00       	pushq  $0x4
    1079:	f2 e9 a1 ff ff ff    	bnd jmpq 1020 <.plt>
    107f:	90                   	nop
    1080:	f3 0f 1e fa          	endbr64 
    1084:	68 05 00 00 00       	pushq  $0x5
    1089:	f2 e9 91 ff ff ff    	bnd jmpq 1020 <.plt>
    108f:	90                   	nop
    1090:	f3 0f 1e fa          	endbr64 
    1094:	68 06 00 00 00       	pushq  $0x6
    1099:	f2 e9 81 ff ff ff    	bnd jmpq 1020 <.plt>
    109f:	90                   	nop
    10a0:	f3 0f 1e fa          	endbr64 
    10a4:	68 07 00 00 00       	pushq  $0x7
    10a9:	f2 e9 71 ff ff ff    	bnd jmpq 1020 <.plt>
    10af:	90                   	nop
    10b0:	f3 0f 1e fa          	endbr64 
    10b4:	68 08 00 00 00       	pushq  $0x8
    10b9:	f2 e9 61 ff ff ff    	bnd jmpq 1020 <.plt>
    10bf:	90                   	nop

Disassembly of section .plt.got:

00000000000010c0 <__cxa_finalize@plt>:
    10c0:	f3 0f 1e fa          	endbr64 
    10c4:	f2 ff 25 2d 2f 00 00 	bnd jmpq *0x2f2d(%rip)        # 3ff8 <__cxa_finalize@GLIBC_2.2.5>
    10cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .plt.sec:

00000000000010d0 <strlen@plt>:
    10d0:	f3 0f 1e fa          	endbr64 
    10d4:	f2 ff 25 b5 2e 00 00 	bnd jmpq *0x2eb5(%rip)        # 3f90 <strlen@GLIBC_2.2.5>
    10db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000010e0 <printf@plt>:
    10e0:	f3 0f 1e fa          	endbr64 
    10e4:	f2 ff 25 ad 2e 00 00 	bnd jmpq *0x2ead(%rip)        # 3f98 <printf@GLIBC_2.2.5>
    10eb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000010f0 <fgets@plt>:
    10f0:	f3 0f 1e fa          	endbr64 
    10f4:	f2 ff 25 a5 2e 00 00 	bnd jmpq *0x2ea5(%rip)        # 3fa0 <fgets@GLIBC_2.2.5>
    10fb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001100 <signal@plt>:
    1100:	f3 0f 1e fa          	endbr64 
    1104:	f2 ff 25 9d 2e 00 00 	bnd jmpq *0x2e9d(%rip)        # 3fa8 <signal@GLIBC_2.2.5>
    110b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001110 <waitpid@plt>:
    1110:	f3 0f 1e fa          	endbr64 
    1114:	f2 ff 25 95 2e 00 00 	bnd jmpq *0x2e95(%rip)        # 3fb0 <waitpid@GLIBC_2.2.5>
    111b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001120 <perror@plt>:
    1120:	f3 0f 1e fa          	endbr64 
    1124:	f2 ff 25 8d 2e 00 00 	bnd jmpq *0x2e8d(%rip)        # 3fb8 <perror@GLIBC_2.2.5>
    112b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001130 <exit@plt>:
    1130:	f3 0f 1e fa          	endbr64 
    1134:	f2 ff 25 85 2e 00 00 	bnd jmpq *0x2e85(%rip)        # 3fc0 <exit@GLIBC_2.2.5>
    113b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001140 <execlp@plt>:
    1140:	f3 0f 1e fa          	endbr64 
    1144:	f2 ff 25 7d 2e 00 00 	bnd jmpq *0x2e7d(%rip)        # 3fc8 <execlp@GLIBC_2.2.5>
    114b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001150 <fork@plt>:
    1150:	f3 0f 1e fa          	endbr64 
    1154:	f2 ff 25 75 2e 00 00 	bnd jmpq *0x2e75(%rip)        # 3fd0 <fork@GLIBC_2.2.5>
    115b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .text:

0000000000001160 <_start>:
    1160:	f3 0f 1e fa          	endbr64 
    1164:	31 ed                	xor    %ebp,%ebp
    1166:	49 89 d1             	mov    %rdx,%r9
    1169:	5e                   	pop    %rsi
    116a:	48 89 e2             	mov    %rsp,%rdx
    116d:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    1171:	50                   	push   %rax
    1172:	54                   	push   %rsp
    1173:	4c 8d 05 e6 02 00 00 	lea    0x2e6(%rip),%r8        # 1460 <__libc_csu_fini>
    117a:	48 8d 0d 6f 02 00 00 	lea    0x26f(%rip),%rcx        # 13f0 <__libc_csu_init>
    1181:	48 8d 3d e4 00 00 00 	lea    0xe4(%rip),%rdi        # 126c <main>
    1188:	ff 15 52 2e 00 00    	callq  *0x2e52(%rip)        # 3fe0 <__libc_start_main@GLIBC_2.2.5>
    118e:	f4                   	hlt    
    118f:	90                   	nop

0000000000001190 <deregister_tm_clones>:
    1190:	48 8d 3d 79 2e 00 00 	lea    0x2e79(%rip),%rdi        # 4010 <stdin@@GLIBC_2.2.5>
    1197:	48 8d 05 72 2e 00 00 	lea    0x2e72(%rip),%rax        # 4010 <stdin@@GLIBC_2.2.5>
    119e:	48 39 f8             	cmp    %rdi,%rax
    11a1:	74 15                	je     11b8 <deregister_tm_clones+0x28>
    11a3:	48 8b 05 2e 2e 00 00 	mov    0x2e2e(%rip),%rax        # 3fd8 <_ITM_deregisterTMCloneTable>
    11aa:	48 85 c0             	test   %rax,%rax
    11ad:	74 09                	je     11b8 <deregister_tm_clones+0x28>
    11af:	ff e0                	jmpq   *%rax
    11b1:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    11b8:	c3                   	retq   
    11b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000000011c0 <register_tm_clones>:
    11c0:	48 8d 3d 49 2e 00 00 	lea    0x2e49(%rip),%rdi        # 4010 <stdin@@GLIBC_2.2.5>
    11c7:	48 8d 35 42 2e 00 00 	lea    0x2e42(%rip),%rsi        # 4010 <stdin@@GLIBC_2.2.5>
    11ce:	48 29 fe             	sub    %rdi,%rsi
    11d1:	48 89 f0             	mov    %rsi,%rax
    11d4:	48 c1 ee 3f          	shr    $0x3f,%rsi
    11d8:	48 c1 f8 03          	sar    $0x3,%rax
    11dc:	48 01 c6             	add    %rax,%rsi
    11df:	48 d1 fe             	sar    %rsi
    11e2:	74 14                	je     11f8 <register_tm_clones+0x38>
    11e4:	48 8b 05 05 2e 00 00 	mov    0x2e05(%rip),%rax        # 3ff0 <_ITM_registerTMCloneTable>
    11eb:	48 85 c0             	test   %rax,%rax
    11ee:	74 08                	je     11f8 <register_tm_clones+0x38>
    11f0:	ff e0                	jmpq   *%rax
    11f2:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
    11f8:	c3                   	retq   
    11f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001200 <__do_global_dtors_aux>:
    1200:	f3 0f 1e fa          	endbr64 
    1204:	80 3d 0d 2e 00 00 00 	cmpb   $0x0,0x2e0d(%rip)        # 4018 <completed.8061>
    120b:	75 2b                	jne    1238 <__do_global_dtors_aux+0x38>
    120d:	55                   	push   %rbp
    120e:	48 83 3d e2 2d 00 00 	cmpq   $0x0,0x2de2(%rip)        # 3ff8 <__cxa_finalize@GLIBC_2.2.5>
    1215:	00 
    1216:	48 89 e5             	mov    %rsp,%rbp
    1219:	74 0c                	je     1227 <__do_global_dtors_aux+0x27>
    121b:	48 8b 3d e6 2d 00 00 	mov    0x2de6(%rip),%rdi        # 4008 <__dso_handle>
    1222:	e8 99 fe ff ff       	callq  10c0 <__cxa_finalize@plt>
    1227:	e8 64 ff ff ff       	callq  1190 <deregister_tm_clones>
    122c:	c6 05 e5 2d 00 00 01 	movb   $0x1,0x2de5(%rip)        # 4018 <completed.8061>
    1233:	5d                   	pop    %rbp
    1234:	c3                   	retq   
    1235:	0f 1f 00             	nopl   (%rax)
    1238:	c3                   	retq   
    1239:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001240 <frame_dummy>:
    1240:	f3 0f 1e fa          	endbr64 
    1244:	e9 77 ff ff ff       	jmpq   11c0 <register_tm_clones>

0000000000001249 <sig_int>:
    1249:	f3 0f 1e fa          	endbr64 
    124d:	55                   	push   %rbp
    124e:	48 89 e5             	mov    %rsp,%rbp
    1251:	48 83 ec 10          	sub    $0x10,%rsp
    1255:	89 7d fc             	mov    %edi,-0x4(%rbp)
    1258:	48 8d 3d a5 0d 00 00 	lea    0xda5(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    125f:	b8 00 00 00 00       	mov    $0x0,%eax
    1264:	e8 77 fe ff ff       	callq  10e0 <printf@plt>
    1269:	90                   	nop
    126a:	c9                   	leaveq 
    126b:	c3                   	retq   

000000000000126c <main>:
    126c:	f3 0f 1e fa          	endbr64 
    1270:	55                   	push   %rbp
    1271:	48 89 e5             	mov    %rsp,%rbp
    1274:	48 81 ec 20 04 00 00 	sub    $0x420,%rsp
    127b:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1282:	00 00 
    1284:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1288:	31 c0                	xor    %eax,%eax
    128a:	48 8d 35 b8 ff ff ff 	lea    -0x48(%rip),%rsi        # 1249 <sig_int>
    1291:	bf 02 00 00 00       	mov    $0x2,%edi
    1296:	e8 65 fe ff ff       	callq  1100 <signal@plt>
    129b:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
    129f:	75 0c                	jne    12ad <main+0x41>
    12a1:	48 8d 3d 6a 0d 00 00 	lea    0xd6a(%rip),%rdi        # 2012 <_IO_stdin_used+0x12>
    12a8:	e8 73 fe ff ff       	callq  1120 <perror@plt>
    12ad:	48 8d 3d 6b 0d 00 00 	lea    0xd6b(%rip),%rdi        # 201f <_IO_stdin_used+0x1f>
    12b4:	b8 00 00 00 00       	mov    $0x0,%eax
    12b9:	e8 22 fe ff ff       	callq  10e0 <printf@plt>
    12be:	e9 f5 00 00 00       	jmpq   13b8 <main+0x14c>
    12c3:	48 8d 85 f0 fb ff ff 	lea    -0x410(%rbp),%rax
    12ca:	48 89 c7             	mov    %rax,%rdi
    12cd:	e8 fe fd ff ff       	callq  10d0 <strlen@plt>
    12d2:	48 83 e8 01          	sub    $0x1,%rax
    12d6:	0f b6 84 05 f0 fb ff 	movzbl -0x410(%rbp,%rax,1),%eax
    12dd:	ff 
    12de:	3c 0a                	cmp    $0xa,%al
    12e0:	75 1b                	jne    12fd <main+0x91>
    12e2:	48 8d 85 f0 fb ff ff 	lea    -0x410(%rbp),%rax
    12e9:	48 89 c7             	mov    %rax,%rdi
    12ec:	e8 df fd ff ff       	callq  10d0 <strlen@plt>
    12f1:	48 83 e8 01          	sub    $0x1,%rax
    12f5:	c6 84 05 f0 fb ff ff 	movb   $0x0,-0x410(%rbp,%rax,1)
    12fc:	00 
    12fd:	e8 4e fe ff ff       	callq  1150 <fork@plt>
    1302:	89 85 ec fb ff ff    	mov    %eax,-0x414(%rbp)
    1308:	83 bd ec fb ff ff 00 	cmpl   $0x0,-0x414(%rbp)
    130f:	79 0e                	jns    131f <main+0xb3>
    1311:	48 8d 3d 0b 0d 00 00 	lea    0xd0b(%rip),%rdi        # 2023 <_IO_stdin_used+0x23>
    1318:	e8 03 fe ff ff       	callq  1120 <perror@plt>
    131d:	eb 51                	jmp    1370 <main+0x104>
    131f:	83 bd ec fb ff ff 00 	cmpl   $0x0,-0x414(%rbp)
    1326:	75 48                	jne    1370 <main+0x104>
    1328:	48 8d 8d f0 fb ff ff 	lea    -0x410(%rbp),%rcx
    132f:	48 8d 85 f0 fb ff ff 	lea    -0x410(%rbp),%rax
    1336:	ba 00 00 00 00       	mov    $0x0,%edx
    133b:	48 89 ce             	mov    %rcx,%rsi
    133e:	48 89 c7             	mov    %rax,%rdi
    1341:	b8 00 00 00 00       	mov    $0x0,%eax
    1346:	e8 f5 fd ff ff       	callq  1140 <execlp@plt>
    134b:	48 8d 85 f0 fb ff ff 	lea    -0x410(%rbp),%rax
    1352:	48 89 c6             	mov    %rax,%rsi
    1355:	48 8d 3d d2 0c 00 00 	lea    0xcd2(%rip),%rdi        # 202e <_IO_stdin_used+0x2e>
    135c:	b8 00 00 00 00       	mov    $0x0,%eax
    1361:	e8 7a fd ff ff       	callq  10e0 <printf@plt>
    1366:	bf 7f 00 00 00       	mov    $0x7f,%edi
    136b:	e8 c0 fd ff ff       	callq  1130 <exit@plt>
    1370:	48 8d 8d e8 fb ff ff 	lea    -0x418(%rbp),%rcx
    1377:	8b 85 ec fb ff ff    	mov    -0x414(%rbp),%eax
    137d:	ba 00 00 00 00       	mov    $0x0,%edx
    1382:	48 89 ce             	mov    %rcx,%rsi
    1385:	89 c7                	mov    %eax,%edi
    1387:	e8 84 fd ff ff       	callq  1110 <waitpid@plt>
    138c:	89 85 ec fb ff ff    	mov    %eax,-0x414(%rbp)
    1392:	83 bd ec fb ff ff 00 	cmpl   $0x0,-0x414(%rbp)
    1399:	79 0c                	jns    13a7 <main+0x13b>
    139b:	48 8d 3d a1 0c 00 00 	lea    0xca1(%rip),%rdi        # 2043 <_IO_stdin_used+0x43>
    13a2:	e8 79 fd ff ff       	callq  1120 <perror@plt>
    13a7:	48 8d 3d 71 0c 00 00 	lea    0xc71(%rip),%rdi        # 201f <_IO_stdin_used+0x1f>
    13ae:	b8 00 00 00 00       	mov    $0x0,%eax
    13b3:	e8 28 fd ff ff       	callq  10e0 <printf@plt>
    13b8:	48 8b 15 51 2c 00 00 	mov    0x2c51(%rip),%rdx        # 4010 <stdin@@GLIBC_2.2.5>
    13bf:	48 8d 85 f0 fb ff ff 	lea    -0x410(%rbp),%rax
    13c6:	be 00 04 00 00       	mov    $0x400,%esi
    13cb:	48 89 c7             	mov    %rax,%rdi
    13ce:	e8 1d fd ff ff       	callq  10f0 <fgets@plt>
    13d3:	48 85 c0             	test   %rax,%rax
    13d6:	0f 85 e7 fe ff ff    	jne    12c3 <main+0x57>
    13dc:	bf 00 00 00 00       	mov    $0x0,%edi
    13e1:	e8 4a fd ff ff       	callq  1130 <exit@plt>
    13e6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
    13ed:	00 00 00 

00000000000013f0 <__libc_csu_init>:
    13f0:	f3 0f 1e fa          	endbr64 
    13f4:	41 57                	push   %r15
    13f6:	4c 8d 3d 7b 29 00 00 	lea    0x297b(%rip),%r15        # 3d78 <__frame_dummy_init_array_entry>
    13fd:	41 56                	push   %r14
    13ff:	49 89 d6             	mov    %rdx,%r14
    1402:	41 55                	push   %r13
    1404:	49 89 f5             	mov    %rsi,%r13
    1407:	41 54                	push   %r12
    1409:	41 89 fc             	mov    %edi,%r12d
    140c:	55                   	push   %rbp
    140d:	48 8d 2d 6c 29 00 00 	lea    0x296c(%rip),%rbp        # 3d80 <__do_global_dtors_aux_fini_array_entry>
    1414:	53                   	push   %rbx
    1415:	4c 29 fd             	sub    %r15,%rbp
    1418:	48 83 ec 08          	sub    $0x8,%rsp
    141c:	e8 df fb ff ff       	callq  1000 <_init>
    1421:	48 c1 fd 03          	sar    $0x3,%rbp
    1425:	74 1f                	je     1446 <__libc_csu_init+0x56>
    1427:	31 db                	xor    %ebx,%ebx
    1429:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1430:	4c 89 f2             	mov    %r14,%rdx
    1433:	4c 89 ee             	mov    %r13,%rsi
    1436:	44 89 e7             	mov    %r12d,%edi
    1439:	41 ff 14 df          	callq  *(%r15,%rbx,8)
    143d:	48 83 c3 01          	add    $0x1,%rbx
    1441:	48 39 dd             	cmp    %rbx,%rbp
    1444:	75 ea                	jne    1430 <__libc_csu_init+0x40>
    1446:	48 83 c4 08          	add    $0x8,%rsp
    144a:	5b                   	pop    %rbx
    144b:	5d                   	pop    %rbp
    144c:	41 5c                	pop    %r12
    144e:	41 5d                	pop    %r13
    1450:	41 5e                	pop    %r14
    1452:	41 5f                	pop    %r15
    1454:	c3                   	retq   
    1455:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
    145c:	00 00 00 00 

0000000000001460 <__libc_csu_fini>:
    1460:	f3 0f 1e fa          	endbr64 
    1464:	c3                   	retq   

Disassembly of section .fini:

0000000000001468 <_fini>:
    1468:	f3 0f 1e fa          	endbr64 
    146c:	48 83 ec 08          	sub    $0x8,%rsp
    1470:	48 83 c4 08          	add    $0x8,%rsp
    1474:	c3                   	retq   
